package sgsi.view.json;

import java.util.Date;

import org.apache.commons.lang.StringUtils;

import sgsi.model.entidades.Palet;
import sgsi.model.entidades.espacios.Ubicacion;

public class VistaPaletJson {
	
	private int codigoPalet;
	private String almacen;
	private String area;
	private String ubicacion;
	private String estado;
	private String cliente;
	private String tipoDeArticulo;
	private String articulo;			
	private Date fechaDeVencimiento;
	
	
	public VistaPaletJson(Palet palet) {
		super();
		codigoPalet = palet.getCodigoPalet();
		estado = palet.getEstado();
		ubicacion = nullsafeUbicacion(palet.getUbicacion());
		area = nullsafeArea(palet.getUbicacion());
		almacen = nullsafeAlmacen(palet.getUbicacion());
		cliente = palet.getCliente().getNombreComercial();
		tipoDeArticulo = palet.getArticulo().getTipoDeArticulo().getNombre();
		articulo = palet.getArticulo().getNombre();
		fechaDeVencimiento = palet.getFechaDeVencimiento();
	}
	

	private String nullsafeAlmacen(Ubicacion ubicacion) {
		return (StringUtils.isNotEmpty(nullsafeArea(ubicacion))) ? ubicacion
				.getArea().getAlmacen().getNombre() : "";
	}

	private String nullsafeArea(Ubicacion ubicacion) {
		return (StringUtils.isNotEmpty(nullsafeUbicacion(ubicacion))) ? ubicacion
				.getArea().getNombre()
				: "";
	}

	private String nullsafeUbicacion(Ubicacion ubicacion) {
		return (ubicacion == null) ? "" : ubicacion.getNombre();
	}


	public int getCodigoPalet() {
		return codigoPalet;
	}


	public void setCodigoPalet(int codigoPalet) {
		this.codigoPalet = codigoPalet;
	}


	public String getAlmacen() {
		return almacen;
	}


	public void setAlmacen(String almacen) {
		this.almacen = almacen;
	}


	public String getArea() {
		return area;
	}


	public void setArea(String area) {
		this.area = area;
	}


	public String getUbicacion() {
		return ubicacion;
	}


	public void setUbicacion(String ubicacion) {
		this.ubicacion = ubicacion;
	}


	public String getEstado() {
		return estado;
	}


	public void setEstado(String estado) {
		this.estado = estado;
	}


	public String getCliente() {
		return cliente;
	}


	public void setCliente(String cliente) {
		this.cliente = cliente;
	}


	public String getTipoDeArticulo() {
		return tipoDeArticulo;
	}


	public void setTipoDeArticulo(String tipoDeArticulo) {
		this.tipoDeArticulo = tipoDeArticulo;
	}


	public String getArticulo() {
		return articulo;
	}


	public void setArticulo(String articulo) {
		this.articulo = articulo;
	}


	public Date getFechaDeVencimiento() {
		return fechaDeVencimiento;
	}


	public void setFechaDeVencimiento(Date fechaDeVencimiento) {
		this.fechaDeVencimiento = fechaDeVencimiento;
	}



	
}
